// pages/enrollment/major-list.js
const api = require('../../utils/api');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    activeTab: 0,
    colleges: [],
    currentMajor: null,
    showMajorDetail: false,
    loading: true,
    error: null
  },

  /**
   * 切换学院Tab
   */
  switchTab(e) {
    const index = e.currentTarget.dataset.index;
    this.setData({
      activeTab: index
    });
  },

  /**
   * 显示专业详情
   */
  showMajorDetail(e) {
    const { majorId } = e.currentTarget.dataset;
    this.setData({ loading: true });
    
    console.log('获取专业详情, majorId:', majorId);
    
    api.enrollment.getMajorDetailById(majorId)
      .then(res => {
        if ((res.code === 0 || res.code === 200) && res.data) {
          console.log('获取到的专业详情:', res.data);
          
          // 检查是否包含collegeId
          if (!res.data.collegeId) {
            console.warn('专业详情中缺少collegeId，尝试从当前学院中获取');
            // 从当前选中的学院中查找该专业，获取collegeId
            const currentCollege = this.data.colleges[this.data.activeTab];
            if (currentCollege && currentCollege.majors) {
              const foundMajor = currentCollege.majors.find(m => m.id === majorId);
              if (foundMajor) {
                res.data.collegeId = currentCollege.id;
                console.log('从当前学院中找到专业，设置collegeId:', currentCollege.id);
              }
            }
          }
          
          this.setData({
            currentMajor: res.data,
            showMajorDetail: true,
            loading: false
          });
        } else {
          console.error('获取专业详情失败:', res);
          wx.showToast({
            title: res.msg || res.message || '获取专业详情失败',
            icon: 'none'
          });
          this.setData({ loading: false });
        }
      })
      .catch(err => {
        console.error('获取专业详情失败:', err);
        wx.showToast({
          title: '获取专业详情失败',
          icon: 'none'
        });
        this.setData({ loading: false });
      });
  },

  /**
   * 关闭专业详情
   */
  closeMajorDetail() {
    this.setData({
      showMajorDetail: false
    });
  },

  /**
   * 申请专业
   */
  applyMajor() {
    if (!this.data.currentMajor) return;
    
    // 获取当前专业所属的学院ID
    const collegeId = this.data.currentMajor.collegeId;
    
    if (!collegeId) {
      console.error('当前专业没有关联的学院ID:', this.data.currentMajor);
      wx.showToast({
        title: '无法获取学院信息',
        icon: 'none'
      });
      return;
    }
    
    console.log('申请专业:', this.data.currentMajor.name, '学院ID:', collegeId, '专业ID:', this.data.currentMajor.id);
    
    wx.navigateTo({
      url: `/pages/enrollment/online-apply?collegeId=${collegeId}&majorId=${this.data.currentMajor.id}`,
      success: () => {
        this.closeMajorDetail();
      }
    });
  },

  /**
   * 处理获取到的学院和专业数据
   */
  processCollegeData(colleges) {
    if (!colleges || colleges.length === 0) {
      return colleges;
    }
    
    // 确保每个学院都有majors数组
    colleges.forEach((college) => {
      if (!college.majors) {
        college.majors = [];
      }
    });
    
    return colleges;
  },

  /**
   * 加载学院和专业数据
   */
  loadData() {
    this.setData({ loading: true, error: null });
    
    api.enrollment.getAllCollegesWithMajors()
      .then(res => {
        if (res.code === 0 || res.code === 200) {
          if (res.data) {
            // 处理数据
            const colleges = this.processCollegeData(res.data);
            
            this.setData({
              colleges: colleges,
              loading: false
            });
          } else {
            this.setData({
              colleges: [],
              loading: false
            });
          }
        } else {
          this.setData({
            error: res.msg || res.message || '获取学院和专业信息失败',
            loading: false
          });
        }
      })
      .catch(err => {
        console.error('获取学院和专业信息失败:', err);
        this.setData({
          error: '获取学院和专业信息失败，请稍后重试',
          loading: false
        });
      });
  },

  /**
   * 重新加载数据
   */
  reloadData() {
    this.loadData();
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.loadData();
    
    // 如果有传入学院ID，自动切换到对应学院
    if (options.collegeId) {
      api.enrollment.getCollegeById(options.collegeId)
        .then(res => {
          if ((res.code === 0 || res.code === 200) && res.data) {
            const index = this.data.colleges.findIndex(c => c.id === res.data.id);
            if (index !== -1) {
              this.setData({
                activeTab: index
              });
            }
          }
        })
        .catch(err => {
          console.error('根据ID获取学院信息失败:', err);
        });
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '山东劳动职业技术学院招生专业',
      path: '/pages/enrollment/major-list'
    };
  }
})